package com.ruoyi.zlgl.zlsb.service;

import java.util.List;
import com.ruoyi.zlgl.zlsb.domain.ZlglZlsb;
import com.ruoyi.zlgl.zlsb.domain.ZlglZlsbFj;
import com.ruoyi.zlgl.zlsb.vo.ZlSqVo;

/**
 * 专利申报Service接口
 *
 * @author huacai
 * @date 2024-08-15
 */
public interface IZlglZlsbService
{
    /**
     * 查询专利申报
     *
     * @param zlsbId 专利申报主键
     * @return 专利申报
     */
    public ZlglZlsb selectZlglZlsbByZlsbId(String zlsbId);

    /**
     * 查询专利申报列表
     *
     * @param zlglZlsb 专利申报
     * @return 专利申报集合
     */
    public List<ZlglZlsb> selectZlglZlsbList(ZlglZlsb zlglZlsb);


    /**
     * 查询专利申报列表 (无数据权限校验)
     * @param zlglZlsb
     * @return
     */
    List<ZlglZlsb> selectZlList(ZlglZlsb zlglZlsb);

    /**
     * 新增专利申报
     *
     * @param zlglZlsb 专利申报
     * @return 结果
     */
    public int insertZlglZlsb(ZlglZlsb zlglZlsb);

    /**
     * 批量新增专利申报
     *
     * @param zlglZlsbs 专利申报List
     * @return 结果
     */
    public int batchInsertZlglZlsb(List<ZlglZlsb> zlglZlsbs);

    /**
     * 修改专利申报
     *
     * @param zlglZlsb 专利申报
     * @return 结果
     */
    public int updateZlglZlsb(ZlglZlsb zlglZlsb);

    /**
     * 批量删除专利申报
     *
     * @param zlsbIds 需要删除的专利申报主键集合
     * @return 结果
     */
    public int deleteZlglZlsbByZlsbIds(String[] zlsbIds);

    /**
     * 删除专利申报信息
     *
     * @param zlsbId 专利申报主键
     * @return 结果
     */
    public int deleteZlglZlsbByZlsbId(String zlsbId);

    /**
     * 新增附件
     * @param zlglZlsbFj
     * @return
     */
    int insertZlsbFjByZlsbId(ZlglZlsbFj zlglZlsbFj);

    /**
     * 查询附件列表
     * @param zlglZlsbFj
     * @return
     */
    List<ZlglZlsbFj> selectZlsbFjList(ZlglZlsbFj zlglZlsbFj);

    /**
     * 删除专利附件
     * @param fjIds
     * @return
     */
    int deleteZlsbFjByFjIds(Integer[] fjIds);

    /**
     * 查询专利流程状态为
     * 审批通过  国知产权局申请 知产申请驳回  授权(正常) 授权(失效) 的数据
     * 用于授权登记页面
     * @param zlglZlsb
     * @return
     */
    List<ZlglZlsb> selectZlBySqDj(ZlglZlsb zlglZlsb);

    /**
     * 专利授权趋势
     * @return
     */
    List<ZlSqVo> getSqQs();

    /**
     * 查询专利流程状态为授权(正常)的专利
     * @param zlglZlsb
     * @return
     */
    List<ZlglZlsb> selectZlListBySq(ZlglZlsb zlglZlsb);
}
